﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using BusinessLayer.BO;
using BusinessLayer.Interface;
using EntityLayer;
namespace BusinessLayer.Facade
{
    public class clsFacadeActualizarPreLegajoJudicial : clsIFacadeActualizarPreLegajoJudicial
    {
        //FACADE para Insertar, Modificar, Eliminar de la Tabla Prelegajo
        public bool ActualizarPreLegajo(T_Prelegajo obj, string Opcion)
        {
            try
            {
                if (Validaciones(obj))
                {
                    if (Opcion == "I")
                    {
                        return new clsT_PrelegajoBO().Insertar(obj);
                    }
                    else if (Opcion == "M")
                    {
                        return new clsT_PrelegajoBO().Modificar(obj);
                    }
                    else if (Opcion == "E")
                    { }
                    return new clsT_PrelegajoBO().Eliminar(obj);
                }
                else
                {
                    return false;
                }
            }
            catch (Exception)
            {
                return false;
                throw;
            }
        }

        bool Validaciones(T_Prelegajo obj)

         {
             try
             {
                 if (obj.NU_Prelegajo.Length ==0 || obj.Nu_Resolucion.Length ==0  || obj.NU_informe.Length==0 || obj.NU_memo.Length==0 || obj.tx_OrigenInforme.Length==0)
                 {
                     return false;
                 }
                 
             }
             catch (Exception ex)
             {
                 
                 throw ex;
             }

            return true;
        }

        //FACADE para Listar la Tabla Prelegajo
        public List<T_Prelegajo> listarPreLegajo()
        {
            try
            {
                return new clsT_PrelegajoBO().listarPreLegajo();
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        //FACADE para Listar la Tabla Prelegajo por NUMERO DE RESOLUCION
        public List<T_Prelegajo> listarLegajoNU_Resol(string NU_resolucion)
        {
            try
            {
                return new clsT_PrelegajoBO().listarLegajoNU_Resol(NU_resolucion);
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        //FACADE para Listar la Tabla Prelegajo
        public string listar_genera_nroResolucion()
        {
            try
            {
                return new clsT_PrelegajoBO().listar_genera_nroResolucion();
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        #region MyRegion
        //FACADE para Listar la Tabla TipoProceso
        public List<T_TipoProceso> listarTipoProceso()
        {
            try
            {
                return new clsT_TipoProcesoBO().listarTipoProceso();
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        //FACADE para Listar la Tabla UnidadOrganica
        public List<T_UnidadOrganica> listarUnidadOrganica()
        {
            try
            {
                return new clsT_UnidadOrganicaBO().listarUnidadOrganica();
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }

        //FACADE para Listar la Tabla Persona
        public List<T_Persona> listarPersonaEnvia()
        {
            try
            {
                return new clsT_PersonaBO().listarPersonaEnvia();
            }
            catch (Exception)
            {
                return null;
                throw;
            }
        }
        #endregion


        public List<T_Entidad> ListarEntidades()
        {
            return new clsT_EntidadBO().Listar();
        }


        public bool Anular(string nu_Resolucion)
        {
            return new clsT_PrelegajoBO().Anular(nu_Resolucion);
        }
    }
}
